package fachada;

import interfaces.IDaoAluno;
import interfaces.IDaoEndereco;
import interfaces.IDaoFuncionario;
import interfaces.IDaoModalidade;
import interfaces.IDaoPessoa;
import interfaces.IFachada;

import java.util.List;

import modelos.Aluno;
import modelos.Endereco;
import modelos.Funcionario;
import modelos.Modalidade;
import modelos.Pessoa;
import dao.DaoAluno;
import dao.DaoEndereco;
import dao.DaoFuncionario;
import dao.DaoModalidade;
import dao.DaoPessoa;

public class Fachada implements IFachada {
	
	private IDaoModalidade daoModalidade = new DaoModalidade();
	private IDaoAluno daoAluno = new DaoAluno();
	private IDaoPessoa daoPessoa = new DaoPessoa();
	private IDaoFuncionario daoFuncionario = new DaoFuncionario();
	private IDaoEndereco daoEndereco = new DaoEndereco();
	
	@Override
	public Pessoa salvarPessoa(Pessoa pessoa) {
		return daoPessoa.salvar(pessoa);
	}
	
	@Override
	public Pessoa atualizarPessoa(Pessoa pessoa) {
		return daoPessoa.atualizar(pessoa);
	}
	
	@Override
	public Pessoa removerPessoa(Pessoa pessoa) {
		return daoPessoa.remover(pessoa);
	}
	
	@Override
	public List<Pessoa> listarPessoas() {
		return daoPessoa.listar();
	}
	
	@Override
	public Pessoa getPessoaPorId(int id) {
		return daoPessoa.getPorId(id);
	}
	
	@Override
	public Pessoa getPessoaPorCpf(String cpf) {
		return daoPessoa.getPorCpf(cpf);
	}
	
	@Override
	public Aluno salvarAluno(Aluno aluno) {
		return daoAluno.salvar(aluno);
	}
	
	@Override
	public Aluno atualizarAluno(Aluno aluno) {
		return daoAluno.atualizar(aluno);
	}
	
	@Override
	public Aluno removerAluno(Aluno aluno) {
		return daoAluno.remover(aluno);
	}
	
	@Override
	public List<Aluno> listarAlunos() {
		return daoAluno.listar();
	}
	
	@Override
	public Aluno getAlunoPorId(int id) {
		return daoAluno.getPorId(id);
	}
	
	@Override
	public Aluno getAlunoPorCpf(String cpf) {
		return daoAluno.getPorCpf(cpf);
	}
	
	@Override
	public Aluno getAlunoPorMatricula(int matricula) {
		return daoAluno.getPorMatricula(matricula);
	}
	
	@Override
	public Funcionario salvarFuncionario(Funcionario funcionario) {
		return daoFuncionario.salvar(funcionario);
	}
	
	@Override
	public Funcionario atualizarFuncionario(Funcionario funcionario) {
		return daoFuncionario.atualizar(funcionario);
	}
	
	@Override
	public Funcionario removerFuncionario(Funcionario funcionario) {
		return daoFuncionario.remover(funcionario);
	}
	
	@Override
	public List<Funcionario> listarFuncionarios() {
		return daoFuncionario.listar();
	}
	
	@Override
	public Funcionario getFuncionarioPorId(int id) {
		return daoFuncionario.getPorId(id);
	}
	
	@Override
	public Funcionario getFuncionarioPorCpf(String cpf) {
		return daoFuncionario.getPorCpf(cpf);
	}
	
	@Override
	public Funcionario getFuncionarioPorCodigo(String codigo) {
		return daoFuncionario.getPorCodigo(codigo);
	}
	
	@Override
	public Endereco salvarEndereco(Endereco endereco) {
		return daoEndereco.salvar(endereco);
	}
	
	@Override
	public Endereco atualizarEndereco(Endereco endereco) {
		return daoEndereco.atualizar(endereco);
	}
	
	@Override
	public Endereco removerEndereco(Endereco endereco) {
		return daoEndereco.remover(endereco);
	}
	
	@Override
	public List<Endereco> listarEnderecos() {
		return daoEndereco.listar();
	}
	
	@Override
	public Endereco getEnderecoPorId(int id) {
		return daoEndereco.getPorId(id);
	}

	@Override
	public Modalidade salvarModalidade(Modalidade modalidade) {
		return daoModalidade.salvar(modalidade);
	}

	@Override
	public Modalidade atualizarModalidade(Modalidade modalidade) {
		return daoModalidade.atualizar(modalidade);
	}

	@Override
	public Modalidade removerModalidade(Modalidade modalidade) {
		return daoModalidade.remover(modalidade);
	}

	@Override
	public List<Modalidade> listarModalidades() {
		return daoModalidade.listar();
	}

	@Override
	public Modalidade getModalidadePorId(int id) {
		return daoModalidade.getPorId(id);
	}

}
